﻿using sipfe.bean;
using sipfe.model.sqlExecutor;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using sipfe.util;
using sipfe.model.dataAccess;
using sipfe.model.mante;

namespace sipfe.service.mante
{
    public class DependenciaManteService
    {
        /*LISTAR TABLA*/

        public IList<dynamic> listaDependenciaDet(string sw, string vDescripcion, string nIdeDep)
        {
            String[] parametros = new String[] { sw, vDescripcion, nIdeDep };
            String[] nombreParametros = new String[] { "sw", "nameTable", "idTable" };
            //IList<dynamic> lista = SqlExecutorSP.executeStore("paListarSIPDependencia", parametros, nombreParametros);

            return SqlExecutorSP.executeStore("paListarSIPDependencia", parametros, nombreParametros); 
        }
        
        public string getDependenciasByRegion(decimal nIdeRegion, string funcionJs, string tipoSeleccion)
        {
            string cadena = string.Empty;

            String[] parametros = new String[] { nIdeRegion.ToString() };
            String[] nombreParametros = new String[] { "nIdeRegion" };
            IList<dynamic> lista = SqlExecutorSP.executeStore("paListarSIPDependenciaPorRegion", parametros, nombreParametros);
            
            AutoAyudaBean autoAyudaBean = null;
            List<AutoAyudaBean> listaBean = new List<AutoAyudaBean>();

            foreach (dynamic item in lista)
            {
                autoAyudaBean = new AutoAyudaBean();
                autoAyudaBean.VDescripcion  =   item.vDescripcion;
                autoAyudaBean.NIdeDepPadre  =   item.nIdeDepPadre;
                autoAyudaBean.NBanSel       =   item.nBanSel;
                autoAyudaBean.NIdDep        =   item.nIdeDep;
                listaBean.Add(autoAyudaBean);
            }
            return AreasHelper.getInstance().formaTreeJsAreas(listaBean, tipoSeleccion, funcionJs);
        }

        public SIPMaeDependencia sipMaeDependenciaByIdService(decimal nIdeDep)
        {
            DependenciaManteDAO dependenciaManteDAO = new DependenciaManteDAO();
            return (dependenciaManteDAO.sipMaeDependenciaByIdDAO(nIdeDep));
        }

        public IList<dynamic> ListarCodigoDepHijosService(decimal nIdeDepPadre)
        {
            String[] parametros = new String[] { nIdeDepPadre.ToString() };
            String[] nombreParametros = new String[] { "nIdeDepPadre" };          
            return SqlExecutorSP.executeStore("paListarCodigoDepHijos", parametros, nombreParametros);
        }

        /*AGREGAR TABLAS*/
        public string[] AgregarTablaInpService(SIPMaeDependencia sipMaeDependencia)
        {
            DependenciaManteDAO dependenciaManteDAO = new DependenciaManteDAO();
            return dependenciaManteDAO.AgregarTablaInpDAO(sipMaeDependencia);
        }

        /*actualizar tablas*/
        public string[] updateDependenciaService(SIPMaeDependencia sipMaeDependencia)
        {
            DependenciaManteDAO dependenciaManteDAO = new DependenciaManteDAO();
            return dependenciaManteDAO.updateDependenciaDAO(sipMaeDependencia);
        }

        public string[] addHijoAlaDependenciaService(SIPMaeDependencia sipMaeDependencia)
        {
            DependenciaManteDAO dependenciaManteDAO = new DependenciaManteDAO();
            return dependenciaManteDAO.addHijoAlaDependenciaDAO(sipMaeDependencia);
        }

        public int cerrarVigenciaDepService(decimal nIdeDep, DateTime ayer)
        {
            DependenciaManteDAO dependenciaManteDAO = new DependenciaManteDAO();
            return dependenciaManteDAO.cerrarVigenciaDepDAO(nIdeDep, ayer);
        }

        
    }
}
